from collections import defaultdict


class Solution:
    def maximumLengthSubstring(self, s: str) -> int:
        # 维护一个不定长的窗口，里面字符出现的次数都不超过2，用cnt维护出现的次数，当前添加的字符超过2，移除左窗口，直到不为2
        ans = left = 0
        # 统计出现次数
        cnt = defaultdict(int)
        for i, c in enumerate(s):
            cnt[c] += 1
            while cnt[c] > 2:
                # 移除左端点，直到次数不超过2
                cnt[s[left]] -= 1
                left += 1
            ans = max(ans, i - left + 1)
        return ans
